package com.project.mapper;

import com.github.pagehelper.PageInfo;
import com.project.bean.MailBean;
import com.project.bean.UserBean;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import java.time.LocalDate;
import java.util.List;

/**
 * 邮件对象mapper接口
 */
@Mapper
public interface IMailMapper {
    /**
     * 根据邮件信息，添加邮件记录
     * @param mailBean 邮件对象
     * @param receiveNameArray 收件人姓名集合
     */
    public void add(@Param("mailBean") MailBean mailBean,
                    @Param("receiveNameArray") String receiveNameArray);

    /**
     * 根据收件人id集合，邮件id，添加收件箱记录 （默认未读）
     * @param mailId 邮件id
     * @param receiveIdArray 收件人id集合
     */
    public void adds(@Param("mailId") Integer mailId,
                     @Param("receiveIdArray") Integer[] receiveIdArray);

    /**
     * 动态分页查询（有效）邮件记录，登录员工id为固定条件，主题、起始日期、结束日期为动态条件
     *
     * @param title     主题
     * @param startDate 起始日期
     * @param endDate   结束日期
     * @param userId    登录员工id
     * @return 邮件分页对象
     */
    public List<MailBean> findMailByItem(@Param("title") String title,
                                         @Param("startDate") LocalDate startDate,
                                         @Param("endDate") LocalDate endDate,
                                         @Param("userId") Integer userId);

    /**
     * 根据邮件id查询邮件信息
     *
     * @param mailId 邮件id
     * @return 邮件对象
     */
    public MailBean findMailById(Integer mailId);

    /**
     * 根据邮件id修改邮件状态为无效
     *
     * @param mailId 邮件id
     */
    @Update("update t_mail set m_status='无效' where pk_mailId=#{mailId};")
    public void delMail(Integer mailId);

}
